package com.chen.spzx.cloud.order.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClients;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

/**
 * @author cgj
 * @date 3/29/25 10:26 AM
 */
@LoadBalancerClients(value = {
        @LoadBalancerClient(name = "spzx-cloud-user" ,  //服务的名称
                configuration = CustomLoadBalancerConfiguration.class)
        // 将负载均衡算法应用到指定的服务提供方中
})
@Configuration
public class RestTemplateConfiguration {
    /**
     * 创建一个 RestTemplate Bean，使得 RestTemplate 在 Spring 容器中管理，
     * 可以被其他组件自动注入并使用。 @Autowired
     * 在 Spring 应用程序中，RestTemplate 用于与外部 RESTful 服务进行交互。
     * @return
     */
    @LoadBalanced  //让restTemplate 具有负载均衡的能力, 策略是轮询
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}
